#include <my_head.h>

void *task_func(void *arg){
    printf("我是子线程:[%ld] 10秒后退出\n", pthread_self());
    sleep(10);
    printf("我是子线程:[%ld] 退出\n", pthread_self());
    // 一个进程中的任意一个线程调用exit或者_exit都会导致整个进程结束
    //exit(EXIT_SUCCESS);
    // 专门用来终止线程的函数
    pthread_exit(NULL);
}

int main(int argc, const char *argv[]){
    pthread_t tid = 0;
    int ret = 0;
    if(0 != (ret = pthread_create(&tid, NULL, task_func, NULL))){
        printf("pthread_create error : [%d] [%s]\n", ret, strerror(ret));
        exit(EXIT_FAILURE);
    }
#if 0
    while(1){
        printf("我是主线程:[%ld]\n", pthread_self());
        sleep(1);
    } 
#else
    // 一个进程中的多个线程之间是平等的 没有主次之分 
    // 只是我们习惯上将进程中的第一个线程叫做主线程  其他线程叫做子线程
    printf("我是主线程:[%ld]\n", pthread_self());
    sleep(5);
    pthread_exit(NULL);
#endif
    return 0;
}